/**
 * Mise en oeuvre de Joueur.h
 *
 * @file Joueur.cxx
 */

// A besoin de la declaration de la classe
#include "Joueur.h"
#include "Piece.h"
#include "Pion.h"
#include "Tour.h"
#include "Cavalier.h"
#include "Roi.h"
#include "Reine.h"
#include "Fou.h"
#include "Echiquier.h"

#include <iostream>

using namespace std;

Joueur::Joueur()
	:m_pieces(16)
{
	for (int i=0; i<8; i++)
		m_pieces[i] = PiecePtr(new Pion());

	m_pieces[8] = PiecePtr(new Tour);
	m_pieces[9] = PiecePtr(new Tour);

	m_pieces[10] = PiecePtr(new Cavalier);
	m_pieces[11] = PiecePtr(new Cavalier);

	m_pieces[12] = PiecePtr(new Fou);
	m_pieces[13] = PiecePtr(new Fou);

	m_pieces[14] = PiecePtr(new Reine);
	m_pieces[15] = PiecePtr(new Roi);

	//cout << "Joueur() - " << this << endl;
}

Joueur::~Joueur()
{
	//cout << "~Joueur() - " << this << endl;
}

void Joueur::placerPieces(Echiquier* e)
{
	for (int i = 0; i < 16; i++)
		e->placer(m_pieces.at(i));
}

void Joueur::affiche() const
{
	for (int i = 0; i < 16; i++)
		m_pieces.at(i)->affiche();
}
